With the development of memory technology, there is an increasing need for small-sized memories with higher density and performance. Nevertheless, flash memories require complex mask patterns and exorbitant manufacturing costs and are subjected to relatively large word line leakage and crosstalk between cells. In addition, as the number of electrons in floating gates becomes smaller and smaller, the size reduction capacity of the flash memories is greatly limited and it is estimated that the development of the size reduction capacity will be difficult to continue when it gets to 1z nm. Thus, emerging non-volatile memories such as CBRAM, MRAM, PRAM and RRAM gain increasing attention, wherein resistive random access memory RRAM, by virtue of high speed, large capacity, low power consumption, low cost and high reliability, is regarded as the most powerful candidate for flash memories.
Nevertheless, as a RRAM unit changes resistance states (“1” for a low resistance state, “0” for a high resistance state) according to voltage or current applied on two ends thereof, the resistance in a low resistance state and a high resistance state is very sensitive to the applied voltage or current. In the prior art, when a group of RRAM units are programmed, over-set will be generated to cause the failure of a high resistance state if the units that have been in a low resistance state are subjected to a positive voltage and are set again; or over-reset will be generated to cause the failure of a low resistance state if the units that have been in a high resistance state are subjected to a negative voltage and are reset again. The programming method described above will cause the failure of a high resistance state or a low resistance state of storage units, thereby reducing the data storage capacity and the service life of the storage units.
Thus, a programming method and device that can solve at least one of the above-mentioned problems are urgently demanded.